// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const { taskId } = event
  
  try {
    // 检查用户权限（只有宿管可以完成整改任务）
    const userInfo = await db.collection('users').where({
      openid: wxContext.OPENID
    }).get()
    
    const isDormManager = userInfo.data.some(u => u.role === '宿管')
    if (!isDormManager) {
      return {
        success: false,
        error: '无权操作，只有宿管可以完成整改任务'
      }
    }
    
    // 检查任务是否存在
    const taskInfo = await db.collection('tasks').doc(taskId).get()
    
    if (!taskInfo.data) {
      return {
        success: false,
        error: '整改任务不存在'
      }
    }
    
    // 检查宿管是否有权限管理该楼栋
      const building = taskInfo.data.building
      const manageBuildings = userInfo.data[0].building || []
      
      if (!manageBuildings.includes(building)) {
        return {
          success: false,
          error: '无权管理该楼栋的整改任务'
        }
      }
    
    // 检查任务状态（只有已提交状态可以标记为完成）
    if (taskInfo.data.status !== '已提交') {
      return {
        success: false,
        error: '该整改任务尚未提交或已完成'
      }
    }
    
    // 更新任务状态n
    await db.collection('tasks').doc(taskId).update({
      data: {
        status: '已完成',
        completeTime: new Date(),
        completerId: userInfo.data[0]._id,
        completerName: userInfo.data[0].name,
        updateTime: new Date()
      }
    })
    
    return {
      success: true,
      message: '整改任务已标记为完成'
    }
    
  } catch (err) {
    console.error('完成整改任务失败', err)
    return {
      success: false,
      error: err.message
    }
  }
} 